﻿using System;

namespace InterfaceApplication
{
    abstract class A
    {
        public int a = 0; // 正确
        abstract public void Func(); // 抽象方法
    }
    interface B
    {
        //public int a = 0; // 错误
        public static int b = 0; // 正确
        public void Func(); // 接口方法不需要添加 abstract 关键字
    }
}
/*
 
接口(interface)和抽象类(abstract class)的区别

 1、接口支持多继承，抽象类不能实现多继承。
 2、接口只能定义抽象规则，抽象类既可以定义规则，还可能提供已实现的成员。
 3、接口是一组行为规范，抽象类是一个不完全的类，着重族的概念。
 4、接口可以用于支持回调，抽象类不能实现回调，因为继承不支持。
 5、接口只包含方法、属性、索引器、事件的签名，但不能定义字段和包含实现的方法，抽象类可以定义字段、属性、包含有实现的方法。
 6、接口可以作用于值类型和引用类型，抽象类只能作用于引用类型。例如，Struct就可以继承接口，而不能继承类。
 
 */